package xyz.acproject.danmuji.conf.set;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import xyz.acproject.danmuji.component.ThreadComponent;
import xyz.acproject.danmuji.conf.PublicDataConf;
import xyz.acproject.danmuji.conf.base.StartThreadInterface;
import xyz.acproject.danmuji.conf.base.TimingLiveSetConf;

import java.io.Serializable;

/**
 * AI回复配置类
 * @author BanqiJane
 * @date 2024年12月
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AIReplySetConf extends TimingLiveSetConf implements Serializable, StartThreadInterface {
    
    private static final long serialVersionUID = 1L;
    
    // 是否开启AI回复
    @JSONField(name = "is_open_ai_reply")
    private boolean is_open_ai_reply = true;
    
    // AI回复风格偏好
    @JSONField(name = "ai_reply_style")
    private String ai_reply_style = "auto"; // auto, 可爱萌系, 温暖治愈, 幽默风趣, 元气满满, 温柔贴心
    
    // 最大回复长度
    @JSONField(name = "max_reply_length")
    private int max_reply_length = 50;
    
    // 是否启用敏感词过滤
    @JSONField(name = "enable_sensitive_filter")
    private boolean enable_sensitive_filter = true;
    
    // 是否在基础回复后追加AI回复
    @JSONField(name = "append_ai_reply")
    private boolean append_ai_reply = true;
    
    // AI回复延迟（秒）
    @JSONField(name = "ai_reply_delay")
    private double ai_reply_delay = 1.0;
    
    // 是否启用emoji表情
    @JSONField(name = "enable_emoji")
    private boolean enable_emoji = true;
    
    // 自定义敏感词列表（逗号分隔）
    @JSONField(name = "custom_sensitive_words")
    private String custom_sensitive_words = "";
    
    @Override
    public void start(ThreadComponent threadComponent) {
        if (StringUtils.isBlank(PublicDataConf.USERCOOKIE)) {
            return;
        }
        
        if (is_live_open()) {
            if (PublicDataConf.lIVE_STATUS != 1) {
                // 直播未开始，关闭AI回复
                return;
            }
        }
        
        // AI回复功能不需要单独启动线程，它集成在现有的回复线程中
        // 这里主要用于配置验证和初始化
    }
    
    /**
     * 获取AI回复风格
     */
    public String getAIReplyStyle() {
        if ("auto".equals(ai_reply_style)) {
            return "auto";
        }
        return ai_reply_style;
    }
    
    /**
     * 获取自定义敏感词数组
     */
    public String[] getCustomSensitiveWords() {
        if (StringUtils.isBlank(custom_sensitive_words)) {
            return new String[0];
        }
        return custom_sensitive_words.split(",");
    }
    
    /**
     * 检查是否启用敏感词过滤
     */
    public boolean isEnableSensitiveFilter() {
        return enable_sensitive_filter;
    }
    
    /**
     * 检查是否启用emoji表情
     */
    public boolean isEnableEmoji() {
        return enable_emoji;
    }
} 